home *** CD-ROM | disk | FTP | other *** search
/ Mac Magazin/MacEasy 2 / Mac Magazin and MacEasy Magazine CD - Issue 02.iso / Sharewarebibliothek / Applikationen / Alpha.5.81 folder / Tcl / SystemCode / menus.tcl < prev    next >
Text File  |  1994-06-16  |  6KB  |  395 lines

  1. # A few useful routines.
  2.  
  3. proc makeMenuPermanent {menu} {
  4.     global permanentMenus
  5.     
  6.     set permanentMenus($menu) 1
  7. }
  8.  
  9. if {[catch {set renamedRemove}]} {
  10.     rename removeMenu oldRemoveMenu
  11.     set renamedRemove 1
  12. }
  13.  
  14. proc removeMenu {name} {
  15.     global    permanentMenus
  16.     
  17.     if {![catch {set permanentMenus($name)}]} return
  18.     oldRemoveMenu $name
  19. }
  20.  
  21.  
  22. # My menus.        
  23.  
  24. menu -n File -p fileMenuProc {
  25.     "/Nnew"
  26.     "/Oopen…"
  27.     "/Wclose"
  28.     {menu -n fileSets {
  29.         {menu -n choose -p changeFileSet {}}
  30.         "createFileset…"
  31.         "createThinkFileset…"
  32.         "dumpFileset…"
  33.         "/'editFile"
  34.         "(-"
  35.         "findTag"
  36.         "createTagFile"}}
  37.     "(-"
  38.     "/Ssave"
  39.     "saveAs…"
  40.     "revert"
  41.     "(-"
  42.     "/Yshell"
  43.     "(-"
  44.     "pageSetup…"
  45.     "/Pprint…"
  46.     "(-"
  47.     "/Qquit"
  48. }
  49.  
  50. proc fileMenuProc {menu item} {
  51.     if {$item == "open"} {
  52.         findFile
  53.     } elseif {$item == "close"} {
  54.         killWindow
  55.     } else {
  56.         $item
  57.     }
  58. }
  59.  
  60.  
  61. menu -n Edit {
  62.     "/Zundo"
  63.     "/Dredo"
  64.     "/Lload"
  65.     "(-"
  66.     "/Xcut"
  67.     "/Ccopy"
  68.     "/Vpaste"
  69.     "(-"
  70.     "/.pastePop"
  71.     "yank"
  72.     "/AselectAll"
  73.     "clear"
  74.     "(-"
  75.     {/[shiftLeft}
  76.     {/]shiftRight}
  77.     "/Bbalance"
  78. }
  79.  
  80.  
  81. menu -n Search {
  82.     "/Ffind…"
  83.     "/GrepeatSearchForward"
  84.     "/IrepeatSearchBackward"
  85.     "/TfindInNextFile"
  86.     "(-"
  87.     "/EenterSelection"
  88.     "(-"
  89.     "/Ureplace"
  90.     "/Hreplace&FindAgain"
  91.     "replaceAll"
  92.     "(-"
  93.     "/ gotoLine"
  94.     {menu -n namedMarks -p namedMarkProc {
  95.         "set…"
  96.         "goto…"
  97.         "remove…"}}
  98.     {menu -n unnamedMarks -p unnamedMarkproc {
  99.         "set…"
  100.         "exchangePointAndMark"
  101.         "/=hilite"}}
  102.     {menu -n markStack -p markMenuProc { "push" "pop"}}
  103. }
  104.  
  105. proc namedMarkProc {menu item} {
  106.     switch $item {
  107.         "set"         {setNamedMark}
  108.         "goto"        {gotoNamedMark}
  109.         "remove"    {removeNamedMark}
  110.     }
  111. }
  112.  
  113. proc unnamedMarkproc {menu item} {
  114.     switch $item {
  115.         "set"                     {setMark}
  116.         "exchangePointAndMark"    {exchangePointAndMark}
  117.         "hilite"                {markHilite}
  118.     }
  119. }
  120.     
  121. proc markMenuProc {menu item} {
  122.     switch $item {
  123.         "push"     {pushMark}
  124.         "pop"    {popMark}
  125.     }
  126. }
  127.         
  128.     
  129. menu -n "Utils" {
  130.         {menu -n Flags -p editFlag {}}
  131.         {menu -n Vars -p editVar {}}
  132.         {menu -n fileUtils {
  133.             "insertPathName…"
  134.             "insertFile…"
  135.             "fileRemove…"
  136.             "fileInfo…"
  137.             "wordCount"}}
  138.         "(-"
  139.         "evaluate…"
  140.         {menu -n KbdMacros {
  141.             "startKeyboardMacro"
  142.             "endKeyboardMacro"
  143.             "executeKeyboardMacro"
  144.             "dumpMacro"}}
  145.         "(-"
  146.         "spellcheckWindow"
  147.         "selectParagraph"
  148.         {menu -n NamedClipboards -p namedClipMenuProc {"copy…" "cut…" "paste…"}}
  149.         "(-"
  150.         "loadElectricAlias"
  151. }
  152.  
  153. proc namedClipMenuProc {menu item} {
  154.     switch $item {
  155.         "copy"         "copyNamedClipboard"
  156.         "cut"         "cutNamedClipboard"
  157.         "paste"     "pasteNamedClipboard"
  158.     }
  159. }
  160.  
  161.         
  162. menu    -n Mode {
  163.         "setModeMenus"
  164.         "(-"
  165.         "describeBinding"
  166.         "listBindings"
  167.         {menu -n asciiEtc {
  168.             "keyCode"
  169.             "keyAscii"
  170.             "getAscii"
  171.             "insertAscii"}}
  172.         "(-"
  173.         "setFontsTabs…"
  174.         "(-"
  175.         {menu -m -n switchTo -p switchProc {
  176.             "/`MacMiNT"
  177.             "THINK Project Manager"
  178.             "MPW Shell"
  179.             "Versaterm PRO"
  180.             "MacLayers"}}
  181.         "toolserverShell"
  182. }
  183.  
  184. # ==== NOTE:  rectMarkHilite, onespace, centerRedraw, doTab
  185. menu    -n Convert {
  186.         "fillRegion"
  187.         "fillParagraph"
  188.         "wrapRegion"
  189.         "wrapParagraph"
  190.         "sortLines"
  191.         "matchingLines"
  192.         "(-"
  193.         "zapInvisibles"
  194.         "tabsToSpaces"
  195.         "spacesToTabs"
  196.         "(-"
  197.         {menu    -n Strings {
  198.             "insertPrefix"
  199.             "insertSuffix"
  200.             "removePrefix"
  201.             "removeSuffix"
  202.             "setPrefix"
  203.             "setSuffix"}}
  204.         {menu    -n Comment {
  205.             "transposeChars"
  206.             "transposeWords"
  207.             "commentBox"
  208.             "uncommentBox"}}
  209.         "(-"
  210.         {menu    -n Filters {
  211.             "replaceInRegion"
  212.             "filterLines"
  213.             "filterParagraphs"
  214.             "sortParagraphs"
  215.             "fillRegionByPar"
  216.             "lineToParagraph"
  217.             "paragraphToLine"}}
  218.         "downcaseRegion"
  219.         "upcaseRegion"
  220. }
  221.  
  222. # Real Kludge
  223. proc helpMenuProc {menu item} {
  224.     global HOME helpMenu
  225.     
  226.     if {$menu == $helpMenu} {
  227.         edit -r -m $HOME:Help:$item
  228.     } else {
  229.         edit -r -m $HOME:Help:$menu:$item
  230.     }        
  231. }
  232.  
  233. proc strip {arg} {
  234.     if {[regsub -all {\\([][\{\}])} $arg {\1} v]} {return $v}
  235.     return $arg
  236. }
  237.  
  238.  
  239. # proc buildHelpMenu {f} {
  240. #     global helpArr helpMenu
  241. #     if {[file isfile $f]} { return [file tail $f] }
  242. #     
  243. #     set sub ""
  244. #     set subd ""
  245. #     foreach s [glob $f:*] {
  246. #         if {[string match "*~" $s]} continue
  247. #         set res [buildHelpMenu $s]
  248. #         if {[string match "menu*" $res]} {
  249. #             lappend subd $res
  250. #         } else {
  251. #             lappend sub $res
  252. #         }
  253. #     }
  254. #     set title [file tail $f]
  255. #     if {$title == "Help"} {set title $helpMenu}
  256. #     list menu -n $title -m -p "helpMenuProc" [concat $sub $subd]
  257. # }
  258. # catch {eval [buildHelpMenu $HOME:Help]}
  259.  
  260. menu -n $helpMenu -m -p helpMenuProc {
  261.     "Intro"
  262.     "(-"
  263.     "Alpha Commands"
  264.     "Tcl Commands"
  265.     "(-"
  266.     "Customizing"
  267.     "Debugging"
  268.     "Default Key Bindings"
  269.     "Default Key Bindings 2"
  270.     "electricAlias Help"
  271.     "LaTeX Help"
  272.     "Regular Expressions"
  273.     "Shells"
  274.     "Tcl Library - auto-loading"
  275.     "Tcl Mailing List"
  276.     "XTCLs"
  277. }
  278.  
  279.  
  280. proc switchProc {menu name} {
  281.     switchTo $name
  282. }
  283.         
  284.  
  285. menu -n $winMenu -p menuWin {
  286.         {menu -n arrange {
  287.             "vertically^1"
  288.             "horizontally^2"
  289.             "tiled^3"
  290.             "overlay^4"}}
  291.         "(-"
  292.         "//zoom"
  293.         "iconify"
  294.         "dispFullName"
  295.         "toggleScrollbar"
  296.         "(-"
  297.         "nextWindow"
  298.         "swapWithNext"
  299.         "/;chooseAWindow"
  300.         "closeAll"
  301.         "saveAll"
  302.         "(-"
  303. }
  304.  
  305.  
  306. # We may be reloading, so add whatever windows we have
  307. if {[info exists winNameToNum]} {
  308.     set nms [array names winNameToNum]
  309.     foreach name $nms {
  310.         if {$fullNames} {
  311.             set item $name
  312.         } else {
  313.             regexp {[^:]*$} $name item
  314.         }
  315.         set num $winNameToNum($name)
  316.         if {$num < 10}     {
  317.             addMenuItem -m Wins /$num$item
  318.         } else {
  319.             addMenuItem -m Wins $item
  320.         }
  321.     }
  322. }
  323.  
  324. insertMenu "File"
  325. insertMenu "Edit"
  326. insertMenu "Search"
  327. insertMenu "Utils"
  328. insertMenu "Mode"
  329. enableMenuItem NamedClipboards pasteNamedClipboard off
  330. insertMenu "Convert"
  331. menu -n $fsetMenuName {}; insertMenu $fsetMenuName
  332. insertMenu $winMenu
  333. catch {insertMenu $helpMenu}
  334.  
  335.  
  336. # The 'Files' menu can instantiate itself from the THINK Project Manager if 
  337. # it is running. 
  338. menu -n $thinkMenu {
  339.     "/-think"
  340.     "openHeader"
  341.     "setIncludepath…"
  342.     "(-"
  343.     "/Kcompile"
  344.     "checkSyntax"
  345.     "searchNextFile"
  346.     "(-"
  347.     "add"
  348.     "addAndCompile"
  349.     "(-"
  350.     "disassemble"
  351.     "preprocess"
  352.     "precompile"
  353.     "(-"
  354.     "bringUpToDate"
  355.     "make"
  356.     "(-"
  357.     "debug"
  358.     "/Rrun"
  359. }
  360.  
  361.  
  362. menu -n "$cwarrierMenu" -p codeWarrierProc {
  363.     "switchTo"
  364.     "(-"
  365.     "addFile"
  366.     "compile"
  367.     "(-"
  368.     "update"
  369.     "make"
  370.     "(-"
  371.     "run"
  372. }
  373.  
  374.  
  375.  
  376. menu -n $thinkRefMenu {
  377.     "gotoReference"
  378.     "(-"
  379.     "displayTrapTemplate"
  380.     "insertTrapTemplate"
  381.     "lookupTrap"
  382. }
  383.  
  384. menu -n $tclMenu -p tclMenuProc {
  385.     "traceTclProc"
  386.     "dumpTraces"
  387.     "(-"
  388.     "rebuildTclIndices"
  389.     "(-"
  390.     "getVarValue"
  391. }
  392.  
  393.  
  394. menu -n $terrMenu {}
  395.